package main

import (
	"fmt"
)

func main() {
	//数组比较，一定要是相同长度和相同类型才能比较
	ap := [5]int{3: 2} //下标3的值赋值为2
	at := [5]int{3: 1}
	fmt.Println(ap == at)

	//channel可以比较，前提是类型都是一样的
	c1 := make(chan int, 2)
	c2 := make(chan int, 1)
	fmt.Println(c1 == c2)

	// interface可以比较

	//pointer可以比较

	//slice不能比较，编译会报错，提示slice只有在为nil时才能比较
	s1 := []int{1, 2}
	s2 := []int{3map, 4}
	fmt.Println(s1 == s2)

	//map不能比较，编译会报错，提示map只有在为nil时才能比较
	m1 := make(map[string]interface{})
	m2 := make(map[string]interface{})
	fmt.Println(m1 == m2)

	//function不能比较，编译会报错，提示func只有在为nil时才能比较
	f1 := func() {}
	f2 := func() {}
	fmt.Println(f1 == f2)

}
